Instituto Federal de São Paulo (IFSP)
Campus Bragança Paulista/SP

Análise e Desenvolvimento de Sistemas (ADS)

3o. módulo
Profa. Ana Paula Müller Giancoli
paulagiancoli@ifsp.edu.br

AULA 03 - INTRODUÇÃO À LINGUAGEM DE MODELAGEM UNIFICADA (UML)

Agenda

  • Introdução a UML
  • Diagramas da UML
  • Perguntas

1. Introdução à UML

1.1. O que é

  • NÃO é uma linguagem de programação.
  • NÃO é um processo para saber como analisar e projetar.
  • É a linguagem padrão para a elaboração da estrutura de projetos de software.
  • É apenas um conjunto de ferramentas para utilizar em um processo de desenvolvimento de software.

1.2. Quem são

Figura 1: Representação de como a UML é composta
Fonte: Composição da UML

  • Unificar os principais métodos de modelagem com objetivo de criar um novo padrão de modelagem de software.
  • A versão UML 1.1 existe há 20 anos.
  • A UML é a linguagem de modelagem mais comumente utilizada, sendo mantida pela Object Management Group OMG.
  • A versão 2.5.1 foi oficialmente lançada em dezembro de 2017.

1.3. Problemas quando não criamos Modelos Explícitos

  • A comunicação entre pessoas está sujeita a erros.
  • Existem aspectos nos sistemas de software que não são entendidos, compreendidos claramente.
  • Exclusão de parte de código que nunca foi documentado pelo desenvolvedor.
  • Consequência: as informações serão perdidas para sempre.

1.4. Para que serve a UML ?

  • Composta por um conjunto de diagramas que servem para:
    • Visualizar.
    • Especificar
    • Construir.
    • Documentar artefatos.

2. Diagramas da UML

2.1. Por que tantos diagramas ?

  • Permitem identificar falhas, diminuindo a possibilidade da ocorrência de erros futuros.
  • Permitem analisar o sistema em diversos níveis, podendo enfocar:
    • a organização estrutural do sistema.
    • o comportamento de um processo específico.
    • a definição de um determinado algoritmo.
    • até mesmo as necessidades físicas para a implantação do sistema.

2.2. Síntese dos Diagramas da UML

  • De acordo com Guedes (2011), a síntese dos diagramas da UML:
Síntese dos Diagramas
Diagrama
1. Diagrama Estrutural. 2. Diagrama Comportamental.
  1.1. Diagrama de Classes.   2.1 Diagrama de Atividades.
  1.2. Diagrama de Componentes.   2.2. Diagrama de Caso de Uso.
  1.3. Diagrama de Objetos.   2.3. Diagrama de Máquina de Estados.
  1.4. Diagrama de Estrutura Composta.   2.4. Diagrama de Interação.
  1.5. Diagrama de Implantação.         2.4.1. Diagrama de Sequencia.
  1.6. Diagrama de Pacotes.         2.4.2. Diagrama de Comunicação.
  1.7. Diagrama de Perfil.         2.4.3. Diagrama de Visão Geral de Interação.
        2.4.4. Diagrama de Temporarização.

2.3. Diagramas da UML

Diagrama Descrição Utilização Exemplos
Diagrama de Caso de Uso - É um diagrama simples que mostra quem está usando o seu sistema e quais são os processos (funcionalidades) que eles executarão no sistema. - Utilizado para documentar os fluxos de trabalho da Reunião de Requisitos e Análise.
- Durante todo o desenvolvimento, todo o trabalho deve ser rastreável para retorno ao diagrama de Caso de Uso.
- Linguagem simples, identifica os atores que utilizarão de alguma forma o software, bem como serviços.
Figura 2: Exemplo de um Diagrama de Caso de Uso
Fonte: Autoria própria
Diagrama de Classes - É um diagrama que exibe um conjunto de classes no sistema e as suas associações e seus relacionamentos de herança entre as classes.
- Os nós da classe também podem conter uma relação de atributos e operações. Na fase de análise, representa-se somente as classes, relacionamentos, atributos principais.
- Utilizado para mostrar a estrutura do sistema e o que precisará ser programado.
- A maioria das ferramentas case da UML podem gerar códigos baseados no Diagrama de Classes.
Figura 3: Exemplo de um Diagrama de Classes
Fonte: Autoria própria
Diagrama de Objetos - É um diagrama que exibe as instâncias de objetos específicos e os relacionamentos entre eles.
- Representa uma imagem da situação dos objetos do sistema em um determinado espaço de tempo.
- Utilizado para esclarecer ou validar o Diagrama de Classes.
- Fornece uma visão dos valores armazenados pelos objetos de um Diagrama de classes em um determinado momento da execução de um processo de software.
Figura 4: Exemplo de um Diagrama de Objetos
Fonte: Autoria desconhecida
Diagrama de Pacotes - É um diagrama estrutural que representa os subsistemas ou sub-módulos englobados por um sistema de forma a determinar as partes que o compõem. - Pode ser utilizado independente de outros diagramas ou em conjunto.
- Utilizado também para auxiliar a demonstrar a arquitetura de uma linguagem, ou definir camadas de um software ou de um processo de desenvolvimento.
Figura 5: Exemplo de um Diagrama de Pacotes
Fonte: Guedes (2011)
Diagrama de Atividades - É essencialmente um fluxograma com novos símbolos.
- Esse diagrama representa o fluxo de atividades em um processo ou algoritmo.
- São os passos a serem percorridos para a conclusão de uma atividade específica, podendo ser representada por um método com uma certa complexidade.
- Utilizado para modelar os sistemas empresariais do mundo real durante o fluxo de trabalho da reunião de Requisitos. Figura 6: Exemplo de um Diagrama de Atividades
Fonte: Autoria própria
Diagrama de Comunicação (Colaboração) - É um diagrama que mostra os processos a partir de uma perspectiva orientada a objeto.
- A principal diferença é que o layout do diagrama de Colaboração concentra mais foco nos objetos e não na seqüência.
- Utilizado para dar foco aos objetos em uma seqüência.
- Os diagramas de colaboração são tipicamente mais difíceis de ler dos que os de Sequência.
Figura 7: Exemplo de um Diagrama de Comunicação (Colaboração)
Fonte: Guedes (2011)
Diagrama de Sequencias - É um diagrama que mostra os processos a partir de uma perspectiva orientada a objeto, mostrando como um processo é executado por um conjunto de objetos e atores.
- Preocupa-se com a ordem temporal em que as mensagens são trocadas entre os objetos envolvidos em um determinado processo.
- Baseia-se em um caso de uso definido e apoia-se no Diagrama de classes para determinar os objetos das classes envolvidas em um processo.
- Utilizado para atribuir responsabilidades às classes, considerando como elas podem funcionar juntas para implementar os processos no sistema. Isso é essencial.
- É utilizado para identificar o evento gerador do processo modelado, bem como o ator e também, determina como o processo deve desenrolar e ser concluído por meio de chamada de métodos disparados por mensagens enviadas entre os objetos.
Figura 8: Exemplo de um Diagrama de Sequencias
Fonte: Autoria própria
Diagrama de Máquina de Estado - É um diagrama que mostra como um determinado objeto altera o estado comportamental à medida que os diversos eventos acontecem. - Utilizado para compreender os objetos que alteram os estados comportamentais de maneiras significativas.
- Baseia-se em casos de uso.
Figura 9: Exemplo de um Diagrama de Máquina de Estados
Fonte: Guedes (2011)
Diagrama de Componentes - É um diagrama que exibe os principais componentes de software de um sistema e como eles podem ser integrados.
- Está amplamente ligado à linguagem de programação que será utilizada para desenvolver o software modelado.
- Os diagramas de Componentes podem conter componentes de software não orientados à objeto, como códigos procedurais legados e documentos da web. Exemplo: código-fonte, bibliotecas, formulários, arquivos de ajuda, módulos executáveis.
- Utilizado para mostrar como todos os componentes orientados à objeto e não OO se ajustam em seu sistema.
- Essa também é uma boa maneira de observar a estrutura de software de alto nível do seu sistema.
Figura 10: Exemplo de um Diagrama de Componentes
Fonte: Guedes (2011)
Diagrama de Visão Geral de Implantação - É uma variação do diagrama de atividade que fornece a visão geral dentro de um sistema ou processo de negócio. Surgiu na UML 2.0. - Utilizado para mostrar como o sistema está relacionado ou mesmo um processo de negócio. Figura 11: Exemplo de um Diagrama de Visão Geral de Implantação
Fonte: Guedes (2011)
Diagrama de Implantação - É um diagrama que determina as necessidades de hardware no sistema.
- Representa as características físicas tal como, servidores, estações, topologias e protocolos de comunicação.
- Todo o aparato físico sobre o qual o sistema será executado.
- Utilizado para mostrar como será configurado um sistema distribuído.
- Os componentes de software podem ser exibidos dentro dos nós de hardware para mostrar como serão implementados.
Figura 12: Exemplo de um Diagrama de Implantação
Fonte: Guedes (2011)
Diagrama de Estrutura Composta - É um diagrama que descreve a estrutura interna de um classificador, como uma classe ou um componente. - Utilizado para detalhar as partes internas que um classificador, como estas se comunicam e colaboram entre si. Figura 13: Exemplo de um Diagrama de Estrutura Composta
Fonte: Guedes (2011)
Diagrama de Tempo (Temporização) - É um diagrama que descreve a mudança no estado ou condição de uma instância de uma classe ou seu papel durante um período. - Utilizado para mostrar a mudança no estado de um objeto no tempo em resposta a um evento externo. Figura 14: Exemplo de um Diagrama de Tempo (Temporização)
Fonte: Guedes (2011)

Referências

  • Esta aula foi elaborada a partir do conteúdo disponibilizado em cada um dos links indicados no próprio texto.
  • GUEDES, G. T. A. UML 2 - UMA ABORDAGEM PRÁTICA. [S.L.]: NOVATEC, 2011.
  • MEDEIROS, Ernani - Desenvolvendo Software com UML 2.0 Definitivo - Editora Pearson Makron Books.
  • BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar - UML Guia do Usuário - 2a. Edição - Editora Campus (Elsevier).

Perguntas

  • Esclareça suas eventuais dúvidas durante as aulas.
  • Ou pelo E-mail: paulagiancoli@ifsp.edu.br.
  • Ou pelo Fórum do componente curricular.

ADS - AOO - 3o. módulo.
Modelo e formato elaborado por profa. Ana Paula Müller Giancoli - BSD 2-Clause License. - Setembro.2020.

</div> </div>